Hard drive write requests smaller than a native internal block size of the hard disk, and larger write requests that are not aligned with the internal blocks of the hard disk, can cause the drive to perform an internal read-modify-write operation. This write request can cause an extra disk rotation to complete the operation, which can reduce performance. For example, this reduce performance write request could happen if the host operating system needed to write to a 512 byte block of data on the hard disk. Since the hard disk presents itself as having 512 bytes-per-sector, the host OS would assume the 512 bytes of data would be efficiently written to the hard disk in one write operation.
However, if the hard disk had an internal block size of 1 KB, then the smallest block of data that it could read or write would be 1 KB. In this example, the hard disk internally would have to first read the 1 KB block encompassing the destination of the 512 bytes into an internal memory buffer, then copy the 512 bytes into that buffer at the required offset, and finally write the entire 1 KB buffer back to the hard disk. This read-modify-write requirement is an inefficiency that drastically decreases the performance of the hard disk subsystem.
Also, most operating systems store data on storage media in larger than 512 byte block sizes, which add more complexities to this problem. For example the Microsoft Windows XP™ operating system commonly stores data in 4 KB or 16 KB blocks, starting at the beginning of the operating systems data area. The operating system data area may be offset from the beginning of a storage device due to “partitioning”. Partitioning is the process of dividing the storage device into multiple areas (partitions), each area can then be utilized by different operating systems which may be installed. Also multiple partitions can be used by the same operating system in which case each would appear as a separate storage device accessible by the OS. The size and starting block of most read and write commands issued by the OS will be a multiple of this OS block size. It is noted that unnecessary additional block access can result in as much as a 50% performance loss.
As such, when OS data is stored on a drive, the OS is frequently oblivious to the fact that the drive's internal block size is larger that 512 bytes. The OS assumes that it is reading and writing to the hard disk in the most efficient way possible. However, in the case where the internal native block size of the drive is larger than 512 bytes, there are significant performance implications on whether the OS data blocks are “aligned” with the drives internal block size and their position.